Skip to content

docs: ADR の決定文を部品名に依存させない規範を README へ移す - #39

Merged
shnakatani merged 1 commit into
mainfrom
adr-naming-norm
Sep 20, 2026
Merged

shnakatani merged 1 commit into
mainfrom
adr-naming-norm

Conversation

@shnakatani

Copy link
Copy Markdown
Owner

Summary

ADR-0021 を書いたときの作業文書 (docs/superpowers/) にだけ存在していた ADR 執筆の規範を、追跡対象へ移す。

  • docs/decisions/README.md の「記述ルール」に 1 項目追加する
  • 追加する規範は「決定の文そのものを個別の部品名に依存させない」

移す理由

docs/superpowers/{plans,specs}/*.md は .git/info/exclude で除外されていて追跡されない (git ls-files docs/superpowers は .gitkeep 2 本のみ)。そこにしか無い規範はリポジトリに残らない。

ADR-0021 は実際にこの規範に従っている (grep -rn "DialogScrollForm" docs/decisions/ は 0 件) が、理由がどこにも残っていなかった。scripts/checks/integrity/adr-index.test.ts が見るのは索引と ADR 間リンクだけで、本文中のシンボル名の陳腐化は検出しない。

原文から粒度を絞った

作業文書の原文は「個別の部品名 (DialogScrollForm 等) は書かない」だが、そのまま写すと既存の運用と衝突する。

既存 内容
docs/decisions/README.md の同じ節 「コード参照は src/path/to/file.ts のようにファイルパスで書き、半年後も追える形にする」
ADR-0006 許容リストのガード列で button.test.tsx を名指し
ADR-0021 Consequences で lint-config.test.ts を名指し

決定の文が部品名に依存しないこと、に絞る。根拠としてのファイルパス参照は従来どおり。

Test plan

  • vp check — Found no warnings, lint errors, or type errors in 169 files
  • vp test run --project checks-integrity — Tests 17 passed (17)

🤖 Generated with Claude Code

ADR-0021 を書いたときの作業文書にだけ「個別の部品名 (DialogScrollForm 等) は書かない。
部品名は変わりうるが ADR は凍結されるため」があった。docs/superpowers 配下は
.git/info/exclude で未追跡なので、そこにしか無い規範は残らない。

ADR-0021 は実際にこの規範に従っている (docs/decisions/ に DialogScrollForm は 0 件) が、
理由が追跡対象のどこにも無かった。adr-index.test.ts が見るのは索引と ADR 間リンクだけで、
本文中のシンボル名の陳腐化は検出しない。

原文の「個別の部品名は書かない」をそのまま写すと、同ファイルの「コード参照はファイルパスで
書く」および ADR-0006 / ADR-0021 のテストファイル名の名指しと衝突する。決定の文が部品名に
依存しないこと、に粒度を絞る。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@shnakatani
shnakatani merged commit f011321 into main Sep 20, 2026
1 check passed
@shnakatani
shnakatani deleted the adr-naming-norm branch September 20, 2026 12:35
shnakatani added a commit that referenced this pull request Sep 20, 2026
PR #35 が squash で main へ入ったため、同じ内容を別のコミット列で持つ
storybook-parts との間で 3 件衝突した。いずれも storybook-parts 側を採った。
判断の根拠は次のとおり。

docs/decisions/0022-storybook-as-state-catalog.md
  storybook-parts が完全な上位集合で、main にしかない行は 0 件。

.claude/rules/directory-structure.md
  main の 25 行目「story は部品と同じディレクトリに置く。src/components/ui/ も
  同じで、baseline の対象外になる (ADR-0006 / ADR-0022)」を、6ef804a が title を
  書かない規範へ書き換えた際に落としている。落ちた 2 つの事実は別の行が持つので
  復元しない。ui/ にも置くことは 26 行目「story を置けるのは src/components/ 配下
  だけ」が、baseline の対象外であることは 64 行目「付随ファイルの種別は
  companion-files.ts が唯一の定義で、registry baseline の突き合わせはそこから
  導出する」が持つ。

vitest.storybook.config.ts
  main は PR #35 時点の形で、cacheDir を project ごとに分ける修正を持たない。
  storybook-parts 側が新しい。

docs/decisions/README.md は自動マージされ、#39 が足した記述は残っている。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant